23

» WarCraft 3 / Настройка Канала

Похожие вопросы:

ответ
Можно поставить юниту моментальный каст заклинания, занулив "анимация обратный ход броска, точка броска"тогда этой рамочки не будет.
Проверил уже с удалением из выбора?
ответ
Steal nerves:
Может быть он изначально скрыт? У меня тоже скрыт, нужно в настройках включить изображение
xgm.guru/p/100/190231?postid=348072#comment4 в ссылке есть текстовик, там написаны как настраивать канал, за что отвечают пункты

23

» WarCraft 3 / Замена типа брони

Похожие вопросы:

ответ
Tovio, вроде как нет. Только путем изменения стандартных/переписыванием движка варика.

23

» WarCraft 3 / Двумерные массивы

Принятый ответ
Похожие вопросы:

ответ
в джасс нету двухмерных
они есть в вджасс
можешь хоть 100 мерный но размеры массива надо заранее указывать размер массива
ответ
читаем последние комментарии, и юзаем поиск

23

» WarCraft 3 / нужна помощь с тригерром(тригерами)

Похожие вопросы:

ответ
Steal nerves:
раскрыть
При инициализации создаешь базу, есть функция генерирующее случайное число.
Забиваешь базу данных
UT[0] = пехотинец
UT[1] = бугай
UT[2] = лучница
Count = 2 это кол-во макс. типов, нумерация идёт с нуля у меня
CountU = 20 макс. возможное кол-во юнитов. Здесь можете сами указать . а вообще можно отказаться от этой переменной, проставляете сразу в цикл
Теперь как сделать рандом
set RandomCount = от 1 до CountU генерирует случайное кол-во юнитов
Цикл A от 1 до RandomCount надеюсь знаете как работает цикл? А то многие новички неизнают
-set RandomType = от 0 до Count генерируем случайный тип
-создать юнита с типом UT[RandomType]
Конец цикла
Вообще можно раскрыть BJ функцию и посмотреть как там генерируют кол-во циклом
тему то переименуйте

23

» WarCraft 3 / MemHack

Похожие вопросы:

ответ
Nelloy, я непонимаю как ты собрался делать систему сохранений без локальных файлов? Что за бред? Сейвы априори не могут быть одинаковыми у всех игроков, потому что они постоянно меняются!
Неможет у всех игроков быть одинаковый сейв, как ты собрался рассказать что ты прочитал из файла у красного игрока, если у синего нет такого файла, а у синезелёного в файле совершенно другое содержимое, это и есть локальные файлы!
Тебе так и так придется синхронизировать сейв.
Не понимаю в чем проблема? 100500 сейвов работают на preload exploit и прекрасно себя чуствуют, если вам банальный синк который разжеван в 101 месте не по зубам, сразу оставляем в покое мемхак.
ответ
Возможно "канал" так же имеет отличную от остальных абилок структуру
Рабочий вариант
function StartAbilityCD takes unit whichUnit, integer abilityId returns boolean
local integer pAbility = 0
local real cd = GetAbilityCD(abilityId, GetPlayerId(GetOwningPlayer(whichUnit))+1)
if whichUnit == null or GetUnitAbilityLevel( whichUnit, abilityId ) < 1 or cd == 0.00 then
return false
endif

set pAbility = GetUnitAbility(whichUnit, abilityId)
if pAbility < 1 then
return false
else
if RMem(pAbility+0x134)==-1 and RMem(pAbility+0x138)==-1 then
call WMem(pAbility+0x134,0)
call WMem(pAbility+0x138,0)
endif
set Memory[pReserverdIntArg1 / 4] = mR2I(cd)
call CallThisCallWith2Args( pStartAbilityCD, pAbility, pReserverdIntArg1 )
return IsAbilityOnCooldown( pAbility )
endif
return false
endfunction

23

» WarCraft 3 / Где заказать?!?

Похожие вопросы:

ответ
Armouk, во первых это не вопрос
во вторых - почему тебе должны помогать?
лично я не вижу не 1 причины чтобы делать за тебя карту
или ты бог а все вокруг твои рабы?
если ты и вправду так думаешь то тебе на сайт любителей бдсм
ответ
это Q/A
тут разрешены только вопросы
в следующий раз за заявки типа "сделайте мне что либо" пойдут варны
ответ
Поскольку его не пугает наличие большого влияния промахов на геймплей - скорее всего он делает рпг. Имхо в рпг всегда клево смотрятся тексттаги полученного урона, для создания которых необходимы триггеры на отлов получения урона. А отлавливаемый урон - можно и прохилить.
Для прохила(и вообще всех манипуляций с задержкой в 0.00 сек) лично я юзаю такие костыли:
Либа здесь только для доп табуляции. Я за чистый жасс + дефайны.
library ZeroTimeEvent

    globals
        constant integer ZTEArraySize = 64//Even 32 is alot, 64 is too much! Exactly what I need!
        timer Zero//Used for 0. sec uses
        integer ZTECurrent = 0
        unit array ZTEUnits[ZTEArraySize]
        integer array ZTEIntegers[ZTEArraySize]
        real array ZTEReals[ZTEArraySize]
        trigger array ZTETriggers[ZTEArraySize]
    endglobals
    
    function ZeroTimeEvent takes nothing returns nothing
            loop
                set  ZTECurrent = ZTECurrent - 1
                call TriggerExecute( ZTETriggers[ZTECurrent] )
                exitwhen ZTECurrent < 1
            endloop
    endfunction
    
    #define ZTEAddUnit(u) = {
        set  ZTEUnits[ZTECurrent] = u
    }
    
    #define ZTEAddInteger(i) = {
        set  ZTEIntegers[ZTECurrent] = i
    }
    
    #define ZTEAddReal(r) = {
        set  ZTEReals[ZTECurrent] = r
    }
    
    #define ConfirmZTE(trig) = {
        set  ZTETriggers[ZTECurrent] = trig
        set  ZTECurrent = ZTECurrent + 1
        call TimerStart( Zero, ZeroTime, false, function ZeroTimeEvent )
    }
    
    
    
endlibrary
Пример использования
#define UnitRemoveForceAttack(u) = {
    call UnitAddAbility( u, 'Abun' )
    call UnitRemoveAbility( u, 'Abun' )
         ZTEAddUnit(u)
         ConfirmZTE(CheckIfUnitHasA002)
}
Минус такой системы в необходимости создавать триггер для каждого блока кода, т.к. массивы блоков кода запрещены
ответ
Absorbentum, Заказ небольших триггерных или джаз систем тоже разрешен в теме заказа заклинаний а вообще-если хотите серьезно сотрудничать создайте свой блог или презентуйте проект чтобы заинтересовать людей.

23

» WarCraft 3 / Утечка или не утечка.

Похожие вопросы:

ответ
Alexander69, xgm.guru/p/wc3/optimisations
внимательно прочти то что там написано
особенно про переменные
если коротко то объект не может быть удалён из памяти пока используется (хранится в переменных/хэше/кэше)
ответ
Вот как должен выглядеть полностью правильный триггер без утечек, единственная утечка создастся только при первом использовании, это я так понял переменная группы, ее обнулять нельзя, иначе скил будет работать только раз.
ответ
передача объекта в качестве параметра не влияет на утечку. учитывается только назначение его в переменную, set var=.
ответ
создаешь объект, спрашиваешь, какой у него handle
если меньше 0x100000 - беспокоиться не о чем, он локальный и сам разрушится, если не помешаешь ссылками на него (да и то не факт, что это влияет для них). тем паче, что даже в нативке указывается, вечная или нет деформация
этот (terraindeform) - локальный, если что.

23

» WarCraft 3 / Камера

Похожие вопросы:

ответ
периодически устанавливать камеру в нужном положении\высоте
или в мемхак
ответ
~8gabriel8:
По идее тут могут быть три таких решения:
  • Задать камере bounds, чтобы обзор не выходил за рамки определённой зоны;
  • С периодичностью 0.1 секунда устанавливать обзор в положение указанной камеры;
  • Создать невидимого дамми и привязать камеру к нему.
ответ
Попробуй эту модель.
Камеру можно изменить через war3me.

23

» WarCraft 3 / Продажа предметов

Похожие вопросы:

ответ
Похоже, что никак. Смена владельца точно не помогает =)
ответ
Halian Izverg, в джнгп есть утилита
Fly называется
если не справишься с ней то пиши бд руками
500 объектов минут за 20 легко добавишь в бд
ответ
Diaboliko, у предметов с этим бага
юзай юнитов
с ними намного проще

23

» WarCraft 3 / Как делать спеллы в предметах?

Похожие вопросы:

ответ
короче пихаем сферу в спелбук и запрещаем его
у сферы безмолвие с настройками
ответ
Я сделал себе с этой карты, у меня все работает
Точно не помню какая из них, выбери ту где Келем бегаешь
ответ
о когда я сделал своего героя в нём, то в игре он почему то не используется, в редакторе выставляешь юнита на карту, но при проверке карты, его просто нет.
Ты открыл карту из редактора кампании?
Если нет - поэтому и не отображается.

23

» WarCraft 3 / Опыт

Похожие вопросы:

ответ
Порылся в игровых константах (Вкладка "Дополнительно"). Если изменить указанный пункт, можно задать часть получаемого опыта при отрыве уровня героя. Если поставить все числа 100, то всегда будет даваться полный объем опыта. Можно поставить последнее число 50, тогда при большом отрыве уровней, будет даваться только половина опыта. Как-то так. Могу ошибаться
ответ
А исправить эти его "тупые" действия никак нельзя?
переписать ai скрипты
он хранится в mpq архивах в файлах с расширением .ai
например аи для людей хранится в файле human.ai
ответ
игровые константы - опыт: общее распределение - поменяй на "нет"....
ответ
Вот выделен параметр это опыт, который дается за уничтожение юнита те параметры что выше отвечают за награду золотом за убийство.

23

» WarCraft 3 / Событие с иллюзией.

Похожие вопросы:

ответ
Ну у мастера клинка способность то посложнее...
Вот пример:
Для начала нам нужно создать иллюзии героя, а потом скрыть всех их, так же сделав визуальный эффект (если что то зеленые тени, это снаряды).

23

» WarCraft 3 / Создание информации.

Похожие вопросы:

ответ
Nirvana мод. Поищи информацию о нём. Там всё чудесно в этом плане вроде как реализовано.
ответ
читайте статьи хоть иногда
ответ
Тест карты кампании не показывает нестандартных юнитов кампании. Нужно сохранять и запускать через игру вручную, если что.
ответ
Obelick, эта либо не трогает мультибоарды
она по точкам(location) в основном работает
Obelick:
учить ради них джас и переписывать мне настолько лень
если ты нормально знаешь гуи и имеешь базовые знания по использованию гугл переводчика то переписать мультибоард на jass много времени не займёт
кроме того тебе не обязательно переписывать полностью
можно сконвертировать в код и поправить то что вызывает утечки
если ты говоришь об утечках в функции установки значения ячейки мультибоарда то их можно убрать следующим кодом
define MultiboardSetItemValueBJ(mb,col,row,val)=myMultiboardSetItemValue(mb,col,row,val)

void myMultiboardSetItemValue(multiboard mb, integer col, integer row, string val){
    multiboarditem mbitem = MultiboardGetItem(mb, row-1, col-1)
    MultiboardSetItemValue(mbitem, val)
    MultiboardReleaseItem(mbitem)
    mbitem=null
}
вставь его в шапку карты (туда где ты ALL.j подключал)
правда после этого автозаполнение строк/столбцов перестанет работать и придётся делать его циклом
ответ
Всё, разобрался, вопрос снимаю)

23

» WarCraft 3 / Как изменить размер карты.

Похожие вопросы:

ответ
BrEd Pitt:
В 'Графике' ищи. Точно не помню, вроде 'Шкала выбора'.
ответ
Закрывай с помощью Wc3 Map Optimizer
ответ
Будет на несколько сек грузится быстрее, будут меньше просадки фпс при вручении абилок если они неподгружены и так далее.
Вес упадет немного, но упадет.
ответ
Есть обычные тени - они выглядят как округлое-размытое пятно
А есть тени зданий - они являются своеобразным рисунком, размер которого не регулируется, как у варианта выше
Есть так же некая "текстура почвы", которая добавляет отрисовку на поверхности земли, стилизованную под постройки или даже под конкретную постройку (как например у ратуши и золотой шахты).
. . .
Под маленькую обсерваторию лучше использовать "тень здания" такую, которая соответствовала бы её размеру - например тень сторожевых башен орков/людей. Если нужно побольше - вариант с гнездом химеры, обелиском, и камнем воскрешения (как те что в кампании Рексара).
Касаемо текстуры земли - можно взять один из стандартных вариантов под здания альянса - каменная плитка на земле. Она есть разных размеров и подобрать что-то подходящее можно.
ответ
Графика - шкала выбора

23

» WarCraft 3 / constant function

Похожие вопросы:

ответ
нет, конвертации напрямую нет. я что-то слышал в прошлом про баг с сохранением fogmodifier в хештаблицу, но деталей не знаю, можешь проверить то направление.
ну и мемхак, на крайняк, офк.
ответ
Ой извини, уже нашел ошибку
if GetUnitAbilityLevel(WhistlePhysical_CASTER[i], c_WhistlePhysical_Buff_ID) == 0 then вот что было такой переменный оказалось в другой способности
ответ
Sergey105, нет его 1раз запускают если они с нуля а так растет каждый атак +1 потом таймер удаляет его, причиной было это
constant real time_Interval = 1/32 тут почему то трабл таймер в мега скорость идет,
поэтому поставил constant real time_Interval = 0.03 и стало норм
ответ
ScopteRectuS, у тебя где то перезаписывается bj_lastCreatedUnit
причём происходит это после первой итерации GroupEnumUnitsInRange
а вообще не стоит юзать стандартные бж переменные
т.к. они могут конфликтовать с другими системами
используй приватные переменные
если после перехода на приватные глобалки проблема останется то скопируй систему на отдельную карту и кинь эту карту сюда
буду тестить разные варианты
ответ
ScopteRectuS, ну как я и догадывался, что идет рекурсия.
10 событий - юнит получает урон, на одного юнита... Нужны именно такого типа проверки, всегда в условии триггера проверяй от кого урон и какой этот урон с помощью флага глобалки как в примере.В блоге лича хорошо описаны костыли доты, почитай для общего развития чтобы не наступать на эти грабли еще раз.

23

» WarCraft 3 / PreloadAbility( integer )

Похожие вопросы:

ответ
Nelloy, будет но для этого данные нужно синхронизировать, для ваших сейв\лоадов есть давно проверенная система, которая не требует мемхака - Data Manager, не надо никакого мемхака. Все понятно и просто, вот неужели нельзя изучить всю мат часть по сейвам прежде чем пороть горячку?
ответ
Karp:
pro100master:
Мда слышал про GetLocalPlayer() вот и будет создавать для 1 игрока в сейв
cлыщал, но если бы знал как юзать, то не спрашивал бы)
ответ
Проблема в функции SaveLoad_EncodeVerify.
ответ
ScopteRectuS, у тебя где то перезаписывается bj_lastCreatedUnit
причём происходит это после первой итерации GroupEnumUnitsInRange
а вообще не стоит юзать стандартные бж переменные
т.к. они могут конфликтовать с другими системами
используй приватные переменные
если после перехода на приватные глобалки проблема останется то скопируй систему на отдельную карту и кинь эту карту сюда
буду тестить разные варианты

23

» WarCraft 3 / Воскрешение декораций

Похожие вопросы:

ответ
Могу ошибаться (но не должен).
ОЖИВИТЬ юнита, который не явзяется ГЕРОЕМ - невозможно, по стредствам триггеров.
Можно лишь создать ещё одного ТОЧНО такого же, без излишеств (бонусы, абилки, айтемы - ничего не сохранится, т.к. это новый юнит).
А вот героев можно
Я вроде бы пробовал воскрешать той же функцией обычных юнитов - ничего не получалось (могу ошибаться).

23

» WarCraft 3 / Проблема с ИИ

Похожие вопросы:

ответ
проблема в том что они создаются триггерно
посмотри содержимое бж функции которая даёт стартовых юнитов
там вроде должно быть решение
ответ
Кириллицы в пути к JNGP или к карте нету?
ответ
XGM Bot:
Похожие вопросы:

ответ
Действие "Enforce victory/defeat comnditions" следует включить после того, как выберут расу, чтобы не выскакивало в начале.
ответ
Через что уничтожаешь? Если через килл, то конечно умирает и нейтральный.
  1. Если наносить от какого-то даммика урон в мильены, то не умрет нейтральный.
  2. Можно от даммика развеяние нежити за 0.01 сек.
  3. Заменять можно, внося значение золота в переменную и потом, создавая новый рудник, ставить количество золота в него из переменной, благо это даже в ГУИ реализовано.

ответ
Есть проверка IsUnitDead, где проверяется тип и состояние IsUnitType(u, UNIT_TYPE_DEAD) но никогда не было проблем с проверкой хп.
Так же насколько я помню GetWidgetLife( unit ) > 0.0 или GetUnitState( unit, UNIT_STATE_LIFE ) > 0.405.

23

» WarCraft 3 / Как сделать пассивку с перезарядкой?

Похожие вопросы:

ответ
Я в свое время делал так:
Первая способность - пассивка, на которую, соответственно, нажать нельзя. Вторая - на основе одной из активок, не сбивающих текущий приказ, с пассивной иконкой и с заданным временем перезарядки. А дальше танцы с бубном и подменой способностей - пока перезарядка не нужна - выдаем пассивку, когда срабатывает эффект - убираем пассивку и выдаем активку, отдаем приказ на ее активацию, по истечении времени перезарядки - забираем активку и возвращаем пассивку, еще полезно отслеживать ситуации когда активка не может быть применена или добиться того чтобы ее можно было применить в любом состоянии кроме смерти.

23

» WarCraft 3 / Триггер

Принятый ответ
Похожие вопросы:

ответ
Вам сюда, господин хороший. Там есть ответы, практически, на все ваши вопросы.
ответ
спасибо, XGM Bot!
Нашел это - xgm.guru/p/blog-nvc123/ur1-3
ответ
Собственные попытки в студию, что не получается?
Напомним - ЭТО НЕ СТОЛ ЗАКАЗОВ, здесь задают вопросы про реализацию тех или иных вопросов, спрашивают про ошибки, оптмизацию, отдельные функции. Я не увидел в вашем вопросе ничего кроме невнятного описания механики способности, " вокргу кого то там огненные столбы возникают, и еще порча"...
ответ
Filius Dei, во вредные советы подъехали...
Русификатор очень поможет тем кто собрался ломануть чужую карту и сделать её мод, прям ваще жир...
Потом нубам вроде сударя не стоит бежать ломать чужую карту, чето там пытатся копировать - это все бесполезно, недавно был похожий вопрос - помогите взломать карту за вознаграждение, карту сломали - ну а дальше что? Он неспособен ничего сделать потому что просто не понимает как?
Играя в некую карту вы мните себя великими балансерами и картоделами, мол да чё там, шяс подправлю пару значений и все будет норм - нет не будет, это не так просто как может показаться, без понимания устройства карты и знания Jass вам нечего там делать, вы тупо ничего не сможете изменить, да даже скопировать и вставить!
Помните что без труда не выловишь и рыбку из пруда, т.е изи способов в 1 кнопку взять и запилить чужую карту так как вам хочется или вдруг стащить всех героев себе в карту нет, а уж теболее не случится так что вам кто то возьмет и все это сделает вам за спасибо...

23

» WarCraft 3 / Как оптимизировать карту?

Принятый ответ
Похожие вопросы:

ответ
Roy Mustang:
ну у тебя там почти 1000 юнитов. конечно будет лагать, незнаю попробуй откл список кистей.
Окно - > Список кистей
ответ
Патиссончик, про центр области не заметил
точка каждый раз создаётся заново и это утечка
Патиссончик, есть прога на сайте для записи логов
так же есть дебаг через прелоад на сайте
вот счётчик утечек
ответ
При конвертации моделей из игр в MDX их вес велик как и вес их текстур ! Я оптимизирую и сжимаю модель через MDLvis а текстуры через BLP Laboratory но их вес все еще внушителен ( Есть ли другие варианты среза веса без дефектов материала ?
Нет. Только удаление лишних анимаций. Остальную оптимизацию веса сделает mdlvis.
При импорте некоторых моделей в карту возникает проблема с их выбором при манипуляции ( Передвижения ) словно их Выбор отсутствует , Думаю некоторые с подобным сталкивались ...
Если модель нельзя выделить в игре курсором, у неё отсутствуют collision shapes (формы коллизии). Их можно добавить в War3ModelEditor -> Окна -> Редактор узлов -> правый клик -> Создать форму - > отредактировать размеры и положение. Их можно добавить несколько, чтобы покрыть модель целиком. Они отвечают за взаимодействие модели с курсором.

Один ресурс - один вопрос, после пойдут замечания.
ответ
Лимит операций, обычно это беда настигает заядлых гуишников.
На jass обычно нету таких проблем.
Создайте таймер с периодом .00 сек и запускайте им функции инициализации триггеров.
функция типа InitTrig_Имя триггера - это функция инициализации триггера, она вызывается из функции InitCustomTriggers, но если этих вызовов очень много то функция упирается в лимит операций и поток завершается так и не создав все триггеры.
ответ
в самой последней строке самой последней функции присваивай какое-то значение глобалке и будет тебе счастье знать, что всё закончилось успешно

23

» WarCraft 3 / Немота

Похожие вопросы:

ответ
Артес Менетил:
Много воды разлито. Пиши конкретней. Вообщем если тебе нужна способность, которая будет блочить спеллы юнита. То у повелителя огня есть такая, и вторая есть у Тёмной Охотницы - это Безмолвие. Вообще проще пареной репы.
Кстати на заметку. Безмолвие тёмной охотницы можно сделать так, что бы блокировало не способности а Атаку например, подобие Тумана Ястребов, хотя и туман можно для этого использовать, если кому нужно блочить атаку врага, разрешённые цели сменить у тумана и будет то что нужно.
нужно блочить не все спелы, а конкретные
Вобщем, как я понял, то что я хочу сделать, нельзя сделать, закрываю вопрос